-
Notifications
You must be signed in to change notification settings - Fork 160
Produces empty LCOV files since v0.9.0 #1333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@Minoru could you check with/without the two commits to figure out exactly which of the two is causing this? |
Seeing the similar issue, empty outputs. I think it has to do with the silent auto inclusion of the gitignore file, which is intended to not allow submitting suff, but auto ignoring contents in that file makes no sense, as the binaries produced are obviously excluded from git submissions. deleting the .gitignore works. This is certainly a regression, .gitignore should not be automatically loaded. 0.8.24
0.9.0
|
@tugtugtug thanks for investigating. It should just be a matter of calling https://docs.rs/ignore/latest/ignore/struct.WalkBuilder.html#method.standard_filters on the WalkBuilder to set them to false. |
I'm a bit confused tho, @marco-c so we end up with the standard filters disabled for the WalkBuilder, and do not really ignore anything? So isn't the |
The only reason for using ignore is to have parallel walk of directories. We could implement it manually, but it would be quite some effort compared to just using ignore. |
I mean, I'd likely* accept a PR to implement parallel walking directly in grcov without ignore, but we can just fix this bug quickly for now by setting that option to false. * unless it is too much code and too complex code |
…1333 While ignore is great for collecting files while applying certain auto filters, it barely provides anything that is used by this tool. All we needed was a way to process the binary file searches in parallel. - Implemented a simple parallel file walker uses Rayon to parallize the file search. - Added tests to cover the new implementation - Compared the benchmarks with ignore, and the new implementation performs better consistently on my setup (Apple M4 Max).
…1333 While ignore is great for collecting files while applying certain auto filters, it barely provides anything that is used by this tool. All we needed was a way to process the binary file searches in parallel. - Implemented a simple parallel file walker uses Rayon to parallelize the file search. - Added tests to cover the new implementation - Compared the benchmarks with ignore, and the new implementation performs better consistently on my setup (Apple M4 Max). - Verified this fixed the empty outputs for people running grcov with a .gitignore that includes the output folder.
…1333 While ignore is great for collecting files while applying certain auto filters, it barely provides anything that is used by this tool. All we needed was a way to process the binary file searches in parallel. - Implemented a simple parallel file walker uses Rayon to parallelize the file search. - Added tests to cover the new implementation - Compared the benchmarks with ignore, and the new implementation performs better consistently on my setup (Apple M4 Max). - Verified this fixed the empty outputs for people running grcov with a .gitignore that includes the output folder.
…1333 While ignore is great for collecting files while applying certain auto filters, it barely provides anything that is used by this tool. All we needed was a way to process the binary file searches in parallel. - Implemented a simple parallel file walker uses Rayon to parallelize the file search. - Added tests to cover the new implementation - Compared the benchmarks with ignore, and the new implementation performs better consistently on my setup (Apple M4 Max). - Verified this fixed the empty outputs for people running grcov with a .gitignore that includes the output folder.
@marco-c hopefully, this change fits in the not "too much code" category. The walker implementation is less than 150 lines. All tests passed in the PR, and I verified with the benchmarks on my mac, it performs slightly better than the original ignore lib with the standard filter disabled. |
…1333 While ignore is great for collecting files while applying certain auto filters, it barely provides anything that is used by this tool. All we needed was a way to process the binary file searches in parallel. - Implemented a simple parallel file walker uses Rayon to parallelize the file search. - Added tests to cover the new implementation - Compared the benchmarks with ignore, and the new implementation performs better consistently on my setup (Apple M4 Max). - Verified this fixed the empty outputs for people running grcov with a .gitignore that includes the output folder.
On Linux x86_64, I am getting the following LCOV file instead of the usual 920K of content:
Bisect results:
I had to
git bisect skip
the ea325bd because it panicked:I guess it was running into a file that's smaller than 128 bytes (in that commit, grcov used
read_exact()
).The command line is:
I don't have a minimal reproducer yet (ran out of screen time for today), but it looks like the switch to
infer
crate broke some logic in grcov.The text was updated successfully, but these errors were encountered: